package cn.zhaozhiqi.template;

import cn.zhaozhiqi.pojo.AliPayDto;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.util.ResponseChecker;
import com.alipay.easysdk.payment.page.models.AlipayTradePagePayResponse;

public class AliPayTemplate {
    /**
     * 支付宝支付逻辑实现
     * 待支付时候先调用这个方法，返回的是待支付的界面
     * @param dto
     * @return
     */
    public String aliPay(AliPayDto dto) {

        try {
            // 2. 发起API调用（以创建当面付收款二维码为例）
            //参数有：String subject, String outTradeNo, String totalAmount, String returnUrl
            AlipayTradePagePayResponse response = Factory.Payment.Page()
                    .pay(dto.getSubject(),
                            dto.getOutTradeNo(),
                            dto.getTotalAmount(),
                            dto.getReturnUrl());
            // 3. 处理响应或异常
            if (ResponseChecker.success(response)) {
                System.out.println("调用成功");
            }
        } catch (Exception e) {
            System.err.println("调用遭遇异常，原因：" + e.getMessage());
            throw new RuntimeException(e.getMessage(), e);
        }

        return null;
    }

}
